1. Field of the Invention
The present invention relates to the distribution of software over a network, specifically management of installed software components.
2. Description of the Related Art
In large scale networks such as the Internet, or intranets within businesses, the distribution or life cycle management (LCM) of business software applications is often a manual and laborious process which requires the correct use of such program tools as FTP, TAR, COMPRESS, UUDECODE, and ZIP. The variety of platforms and tools and the complexity of the installation procedures make his manner of distribution a complex and costly operation. Software installation is therefore frequently performed by specially trained personnel rather than end-users of the software.
Business software often consist of multiple sets of computer instructions known in the art as “components” in various forms (e.g., firmware, microcode, object code, binaries). Modern, complex software systems may also employ code modules or components written in a number of computer programming languages, such as the well-known C++ or Java languages. Components of these applications may also run on multiple computers (“nodes” or “platforms”) simultaneously. Such applications are commonly said to operate in a “multi-platform” and/or “multi-threaded” environment. All of these factors increase the difficulty and expense of installing, updating, repairing, and generally maintaining the software components comprising the business application.
The Internet has significantly accelerated the release schedule of applications as well. Software is released (i.e., distributed to the user community) more frequently and in smaller increments; as a result, many more software upgrade and/or installations have to be performed, resulting in more work for the system software maintenance personnel. This multitude of releases can cause version control (also known as “versioning”) problems when a new piece of installed software becomes incompatible with some previously installed software. It is thus desirable to automate this update process.
Prior art systems, such as the one disclosed in U.S. Pat. No. 5,919,247, METHOD FOR THE DISTRIBUTION OF CODE AND UPDATES, to van Hoff, et al. and incorporated herein by reference in its entirety, attempt to address the problems described above using a technique known in the art as “data push.” Data push operates by sending updates and information automatically after receipt of an initiating request from the user. Such systems, however, require that the user (or the application to be maintained) recognize that maintenance is needed and request service from a Central Administrator function before maintenance is performed by the automated Administration function.
Another approach known in the art is the use of the Common Object Request Broker Architecture (CORBA). CORBA is described in detail in Robert Orfali's and Dan Harkey's Client/Server Programming with JAVA™ and CORBA (John Wiley & Sons, 1997), incorporated herein by reference in its entirety. In a CORBA-based system, extensive adaptations are required in the business application (i.e., that part of the code that performs the functions required by the users, as opposed to the part that merely interfaces to a network or life cycle management system) to adapt it for LCM monitoring and maintenance. These modifications increase the cost and complexity of the business application itself.
Furthermore, prior art CORBA-based LCM schemes are tightly coupled to the Administrator module within the CORBA architecture, known as the Object Request Broker (ORB). In a CORBA system, if the ORB crashes or is otherwise unavailable, the entire business application, including the LCM functions, halts. All of the application components, whether purely business- or LCM-related (or even hybrid components), rely on the common ORB.
What is needed is a method of distributing and updating the components of business application software in an automated, scaleable, user-transparent way that enables monitoring and maintenance across multiple network nodes independent of component language. The desired method would not impact the business application itself or increase development costs or complexity. Furthermore, such a system must be robust enough so that the business application can operate “non-stop” even if the Administrator function is crashed or otherwise unable or unavailable to monitor and maintain the components.
JAVA is a trademark of Sun Microsystems, Inc. of Menlo Park, Calif.